The use of personal computers (“PCs”) or workstations has increased as the cost of PCs has dropped. With the growth of the use of PCs, there has been an increase in the number and types of peripherals, e.g., scanners, facsimiles, etc., that may be interfaced with PCs.
There has also been a corresponding increase in support from the manufacturers of operating systems for PCs. For example, in the WINDOWS™ family of operating systems from Microsoft Corporation, Redmond, Washington, WINDOWS™ supports many manufacturers and types of peripherals by providing device drivers for the supported peripherals within the operating system. In the WINDOWS™ family of operating systems, a device driver consists of one or more executable module(s) with a “.DLL” or “.DRV” file extension and any associated data files.
Device drivers provide a low-level interface to peripheral devices. Each device driver translates abstract device operations into actual device operations which are hardware-dependent and specific to the peripheral. For the peripheral to function with a PC, a user generally has to install appropriate device drivers for the connected peripheral. Typically, operating systems provide small software programs or utilities that assist in the installation of the device driver for a selected peripheral. As an example, for a user to install a supported printer, the user would execute an installation utility and provide the location of a PRODUCT.ENF file. The PRODUCT.INF is an information file that represents a manufacturer's product name of the printer in some unique way. The manufacturer of the printer has also provided the operating system manufacturer the device driver for the selected printer. The installation utility reads the PRODUCT.ENF file and installs the device driver from the operating system's media.
A device driver may also be installed by using a self-contained executable file, e.g., a “SETUP.EXE” file in the WINDOWS™ family of operating systems. In the self-contained executable file technique, a manufacturer of a peripheral supplies a floppy disk or CD-ROM (“CD”) disc that includes a self contained program that will install the device driver of the peripheral. The user installs the software by inserting the media (i.e., the floppy or CD) and executing the self-contained executable file directly from the media. In this case, the custom-made self-contained executable file installs the appropriate necessary files, registers the device drivers with the operating system, and other actions necessary for the device driver to function correctly within the operating system of the PC.
The above-mentioned two techniques work well for users of PCs that may be directly connected with peripherals. In today's computing environment, networks often connect PCs with peripherals, which may complicate the installation of device drivers for the networked peripherals. For example, FIG. 5 illustrates a computer network 500 with a number of peripherals 502a . . . 502n and a number of PCs or workstations 504a . . . .504n. Each peripheral, as well as each PC, is interfaced with the network 506, which provides a communication path for each of the peripherals to communicate with each of the PCs. The network 506 also provides a communication path to a server 508 and a peripheral server 510. The server 508 may be configured to provide access to application software and/or data to the users of the PCs 504a. . . 504n. The peripheral server 510 may be configured to provide access to the installed peripherals 512a . . . 512n for the users of the computer network 500 as well as access to application programs and/or data. Typically, for a novice user to install a device driver for one of the installed peripherals 512a . . . 512n, the novice user would have to know which device driver and where the device driver is located to interface with the selected peripheral. Unfortunately, many novice users do not possess this information readily, which may lead to frustration, confusion, and a lack of productivity for the novice user.
Recently, attempts have been made to alleviate the above difficulties of remote installation of device drivers over a network. For example, the Microsoft Corporation developed a “Point and Print” technique. The Point and Print technique is based on a remote Point and Print server, which supplies device drivers for peripherals installed on a network. Any user on the network may install a device driver for a selected peripheral by selecting an icon representing that peripheral. Alternatively, a user may install a selected peripheral for the remote Point and Print Server by supplying a shared file to a built-in peripheral installer associated with the operating system of the PC. The device driver is then copied to and installed on the user's PC.
Although the Point and Print technique may ease the difficulty for the remote installation of device drivers, the Point and Print technique may not be adequate for installing peripheral software over a network. Peripheral software is any manufacturer provided software designed to accompany a device driver for a peripheral. Peripheral software may be configured to extend the capabilities of or access to the associated device driver. For example, peripheral software may be an application for remotely managing a printer including consumables (e.g., toner, paper, etc.), an application to monitor the state of the peripheral, an application to provide Transmission Control Protocol/Internet Protocol (“TCP/IP”) support for the peripheral or an application for displaying printer features to a user without requiring the user to visit a dialog box for the printer.
In the self-contained executable file or PRODUCT.INF technique, the peripheral software may be more easily installed since the manufacturer has directly supplied either the user or the operating software manufacturer with the appropriate device drivers and associated peripheral software. However, in conventional remote driver installation techniques, e.g., the Point and Print technique, procedure calls are limited to installation of the device drivers. The restriction of procedure calls consequently prevents the installation of associated peripheral software for the device driver from a remote computer. Accordingly, associated peripheral software for device drivers may not be installed using a current remote device driver installation.